svg {
  overflow: hidden;
  font-size: 12px;
}

.node rect {
  stroke: #333;
  stroke-width: 1px;
}

.node text {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  cursor: default;
}

.edgeLabel rect {
  fill: #fff;
}

.edgePath {
  stroke: #333;
  stroke-width: 1px;
  fill: none;
}

.edgePath path {
  padding: 20px;
}

svg {
  transition: background-color 800ms;
}

svg.dark {
  background-color: #7a7a7a;
}

svg.dark .node:not(.hover):not(.hover-light) rect {
  opacity: 0.3;
}

svg.dark g.node {
  fill: #fff;
}

g.hover {
  fill: #fff;
}

g.hover rect {
  fill: #4058ff;
}

g.hover-edge {
  stroke: #4058ff;
}

g.hover-light rect {
  fill: #8a9eff;
}
